﻿Imports StartFrame.Web.BR
Imports StartFrame.Web.BR.Helpers
Imports StartFrame.BR.Web.Helpers

Namespace Mantenimiento.Precios

    Public Class Pedido
        Inherits JsonAbm

        ''' <summary>
        ''' Esta clase se encarga de la administración de los reportes o consultas contempladas por la aplicación.
        ''' </summary>
        ''' Constructor
        Sub New()
            MyBase.New(Operador, Password, "XRPEDIDO", "App_pedido_cab", "fecha")
            MyBase.lnk_nombreOperador = Common.Env.Operador
            'Graba tracking
            Me.lnk_Tracking = True
        End Sub

        Public Overrides Function List(Start As Integer, Limit As Integer, Orden As String, Filtro As String) As String
            Dim oFiltro As FiltroColeccion = FiltroColeccion.Parse(Filtro)

            Select Case Common.GrupoOperador.ID.Trim().ToUpper()
                Case "COMERCIO"
                    oFiltro.AgregarEQFilter("id_entidad_com", Common.EntidadOperador.ID)
                Case "PROVEEDOR"
                    oFiltro.AgregarEQFilter("id_entidad_pro", Common.EntidadOperador.ID)
            End Select
            Return MyBase.List(Start, Limit, Orden, oFiltro.ToJSON())
        End Function

        Public Function ListDescRec() As String
            Dim sSelect, sFrom As String
            Dim ds As DataSet
            Dim rs As New ResultSet()
            sSelect = "ds.*"
            sFrom = "dbo.App_entidad e"
            sFrom &= " INNER JOIN dbo.App_lista l ON e.id_entidad = l.id_entidad"
            sFrom &= " INNER JOIN dbo.App_desrec ds ON l.id_lista = ds.id_lista"

            ds = DA.Sql.Select(Common.Env.ConnectionString, sSelect, sFrom)
            rs.LoadTable(ds.Tables(0))
            Return rs.ToJsonString()
        End Function

        Private Sub Pedido_Insertado(ByRef row As System.Data.DataRow) Handles Me.Insertado
            Dim sbQuery As New Text.StringBuilder
            sbQuery.AppendLine("INSERT INTO dbo.App_novedad ( descripcion, fecha_hora, id_usuario, informada, id_pedido)")
            sbQuery.AppendLine(String.Format("Select 'Se agrego un pedido el dia {0}.', GETDATE(), cd_operador, 0, '{1}'", DateTime.Now, row("id_pedido").ToString()))
            sbQuery.AppendLine(" from wad_operadores ")
            sbQuery.AppendLine(" where id_entidad = " & row("id_entidad_pro").ToString())
            DA.Sql.Exec(Common.Env.ConnectionString, sbQuery.ToString())

            Dim emailpro As String = DA.Sql.Search(Common.Env.ConnectionString, "email", "App_entidad", "id_entidad = " & row("id_entidad_pro").ToString())
            Try
                Email.EnviarEmail(emailpro, String.Format("Se agrego un pedido el dia {0}.{1}Para poder visualizarlo debera hacer click en el siguiente enlace {2}?idpedido={3}", DateTime.Now, Environment.NewLine, New Uri(System.Web.HttpContext.Current.Request.Url, System.Web.VirtualPathUtility.ToAbsolute("~/Default.aspx")).ToString(), row("id_pedido").ToString()))
            Catch ex As Exception
                'Interceptar este error e informar que no se pudo enviar el mail
                Throw ex
            End Try
        End Sub
    End Class
End Namespace
